\begin{tikzpicture}[
    node distance = 2cm and 2cm,
    N/.style = {circle, draw, font=\Large, minimum size=1.1em},
    every edge/.style = {draw, -> , semithick, shorten >=2pt},
    every edge quotes/.style = {auto=right, inner sep=2pt}
    ]
    
    %\definecolor{lightyellow1}{RGB}{254, 254, 203}
    
    \tikzstyle{arr shape} = [draw, lightyellow1, fill=lightyellow1, ultra thick, shape=single arrow, minimum height=3em, single arrow tip angle=90, single arrow head extend=0.5em, scale=1]
    
    
    
    \node[inner sep=0em] (table) at (0,0) {
        \begin{tabular}{|>{\centering\arraybackslash}p{3em}|>{\centering\arraybackslash}p{3em}|>{\centering\arraybackslash}p{3em}|>{\centering\arraybackslash}p{3em}|}
            \hline
            &a&b&c \\ \hline
            A\{1,4\}&B\{2,5\}&& \\ \hline
            B\{2,5\}&&C\{2,4\}&D\{3\} \\ \hline
            C\{2,4\}&E\{5\}&F\{2\}&D\{3\} \\ \hline
            D\{3\}&&& \\ \hline
            E\{5\}&&G\{4\}& \\ \hline
            F\{2\}&&F\{2\}&D\{3\} \\ \hline
            G\{4\}&E\{5\}&& \\ \hline	
        \end{tabular}
    };
    \node[anchor=east] (+) at ([yshift=-1.7em]table.north west) {+}; %竖向1.6em 横向4em
    \node (-1) at ([yshift=-0.8em]+) {-};
    \node (-2) at ([yshift=-2.1em]-1) {-};
    \node (-3) at ([yshift=-1.0em]-2) {-};
    \node (-4) at ([yshift=-4.0em]-3) {-};
    
    %按开始点从上往下顺序
    \draw [dashed,red,->] ([xshift=6.8em,yshift=-2.4em+0.7em]table.north west)--([xshift=6.5em-4em,yshift=-2.4em-1.6em+0.7em]table.north west);
    
    \draw [dashed,red,->] ([xshift=10.8em,yshift=-4em+1em]table.north west)--([xshift=10.8em-8em,yshift=-4em-1.6em+1em]table.north west);
    
    \draw [dashed,red,->] ([xshift=14.8em,yshift=-4em+1em]table.north west)--([xshift=14.8em-12em,yshift=-4em-3.2em+1.5em]table.north west);
    
    \draw [dashed,red,->] ([xshift=6.8em,yshift=-5.6em+1.5em]table.north west)--([xshift=6.8em-4em,yshift=-5.6em-3.2em+2em]table.north west);
    
    \draw [dashed,red,->] ([xshift=10.8em,yshift=-5.6em+1.3em]table.north west)--([xshift=10.8em-8em,yshift=-5.6em-4.8em+2em]table.north west);
    
    \draw [dashed,red,->] ([xshift=10.8em,yshift=-8.8em+2em]table.north west)--([xshift=10.8em-8em,yshift=-8.8em-3.2em+2.5em]table.north west);
    
    \draw ([yshift=-0.1em]table.north west)--([xshift=4.25em,yshift=-1.6em]table.north west);
    
    \node [N] (E) at ([xshift=9.5em,yshift=-0.5em]table.north east) {E};
    \node [N] (G) [right of=E] {G};
    \node [N] (C) [below of=E] [label=left:{-}] {C};
    \node [N] (F) [right of=C] {F};
    \node [N] (B) [below of=C] {B};
    \node [N] (D) [right of=B] [label=right:{-}] {D};
    \node [N] (A) [left of=B] [label=left:{+-}] {A};
    \path (E) edge [->] node [below] {b} (G)
    (C) edge [->] node [left] {a} (E)
    (C) edge [->] node [above] {b} (F)
    (C) edge [->] node [above] {c} (D)
    (F) edge [->] node [right] {c} (D)
    (B) edge [->] node [left] {b} (C)
    (B) edge [->] node [above] {c} (D)
    (A) edge [->] node [above] {a} (B)
    (F) edge [loop above] node [above] {b} (F) %循环
    (G) edge [bend right] node [above] {a} (E);

    %箭头
    \node[arr shape, minimum height=4em] at ([xshift=3.5em]table.east) {};

\end{tikzpicture}
